<?php
	/**
	 * Serveral doctypes.
	 * @author IMP
	 */
	
	class MarkupDocType extends MarkupElement {
		private $return;
		
		private function __construct($return){
			$this->return = $return;
		}
		
		public function emit(){
			return $this->return;
		}
		
		public static function strictHTML(){
			return new self('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">');
		}
		
		public static function transitionalHTML(){
			return new self('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
		}
		
		public static function framesetHTML(){
			return new self('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">');
		}
		
		public static function XHTML(){
			return new self('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');
		}
		
		public static function basicXHTML(){
			return new self('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">');
		}
		
		public static function MathML(){
			return new self('<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN"	"http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">');
		}
	}
?>